<?php
/** .-------------------------------------------------------------------
 * |  Software: [HDPHP framework]
 * |      Site: www.hdphp.com  www.hdcms.com
 * |-------------------------------------------------------------------
 * |    Author: 向军 <2300071698@qq.com>
 * |    WeChat: aihoudun
 * | Copyright (c) 2012-2019, www.houdunwang.com. All Rights Reserved.
 * '-------------------------------------------------------------------*/

namespace app\home\controller;

use app\admin\controller\Category;
use houdunwang\request\Request;
use system\model\Module;
use system\model\Article;

class Entry
{
    protected $template;

    public function __construct()
    {
//        设置好路径判断是手机端还是pc端
        $this->template = 'template/' . (IS_MOBILE ? 'mobile' : 'web') . '/' . v('config.template');
//		var_dump(IS_MOBILE);
//        定义模板路径常量
        define(__TEMPLATE__, __ROOT__ . '/' . $this->template);
        $res = $this->runModule();
    }

    public function index()
    {

//        拼接路径
        return view($this->template . '/index.html');
    }

    /**
     * 栏目页面
     */
    public function category()
    {
        $cate_id = Request::get('cate_id');
$cms_cate=\system\model\Category::find($cate_id);
        return view($this->template . '/animals.html',compact('cms_cate'));

    }

    /**
     * 文章内容页
     */
    public function content()
    {
        $arc_id = Request::get('arc_id');
        //找对应数据
        $cms_arc= Article::find($arc_id);
//p($data);
        return view($this->template . '/content.html', compact('cms_arc'));
    }

//    技术栏
public  function  kill(){
    $cate_id = Request::get('cate_id');
    return view($this->template . '/animals.html');
}

//这个方法是为了加载框架之外的插件addons和系统模块module里面的方法
    protected function runModule()
    {
//      //1.1参考地址
        //http://cms.ishilf.com/index.php?m=pic&action=controller/index/index
        //最终执行：(new \addons\pic\controller\Index())->add();
        $m = Request::get('m');
        //1.8,为了考虑，如果你数据库没有这个模块，那么addons/不会有这个模块，没必要实例化了
        $module = Module::where('module_name', $m)->first();
        //p($m);//pic
        //1.2
        $action = Request::get('action');
        //p($action);//controller/index/index
        //这里以上两个get参数同时存在，我们是为你访问模块
        //1.3注意：$module,是在后来增加的
        if ($module && $m && $action) {
            //1.4把action转为数组
            $info = explode('/', $action);
            //p($info);
            //Array(
            //	[0] => controller
            //	[1] => index
            //	[2] => index
            //)
            //1.5
            //$class = "\addons\\" . $m . '\\' . $info[ 0 ] . '\\' . ucfirst( $info[ 1 ] );
            //1.9对1.5进行修改，系统模块需要去module里面实例化
            $class = ($module['module_is_system'] == 1 ? 'module' : 'addons') . "\\" . $m . '\\' . $info[0] . '\\' . ucfirst($info[1]);

            //(new $class)->add();
            //call_user_func_array面向对象ppt
            //1.6

            die( call_user_func_array( [ new $class , $info[ 2 ] ] , [] ) );



        }


    }
}
